package com.ps.bicyclecharging.service;

import com.ps.dto.Pay;
import com.ps.domain.Breakdown;
import com.ps.domain.Recharge;

import java.util.List;
import java.util.Map;

public interface ChargingService {


    /**
     * 联系客服
     */
    void contactCustomerService();

    /**
     * 上报计费异常
     * @param breakdown
     */
    void billingExceptions(Breakdown breakdown);

    /**
     * 查询余额
     * @param uid
     * @return
     */
    double queryBalanceByUid(long uid);

    /**
     * 充值接口
     * @param recharge
     */
    void recharge(Recharge recharge);


    /**
     * 查询充值记录
     * @Param uid 用户id
     *      state 状态 1.查支付记录，2.查充值记录，3.全部流水
     */
    List<Recharge> queryRechargeRecords(long uid, String state);

    /**
     * 查询押金
     * @Param id 用户id
     */
    double queryDeposit(long id);

    /**
     * 设置免密支付
     * @Param id 用户id
     * @Param password 用户支付密码
     */
    void densityFree(long id, String password);

    /**
     * 申请退还押金
     * @Param id 用户id
     */
    void returnDeposit(long id);

    /**
     * 支付
     */
    void pay(Pay pay);

    /**
     * 查询计费规则
     */
    String queryBillingRules();

    /**
     * 设置支付密码
     *      传入参数uid、password
     * @return
     */
    void setPaymentPsw(long uid,String password);

    /**
     * 修改支付密码
     *      传入参数uid、password、newPassword
     * @return
     */
    void updatePaymentPsw(long uid, String password, String newPassword);
}
